Обновление до версии 0.17.0
dbt v0.17.0 делает компиляцию более последовательной, улучшает производительность и исправляет ряд ошибок.
Статьи:
Значительные изменения
Обратите внимание на следующие изменения в версии 0.17.0, которые могут потребовать обновления кода в вашем проекте dbt.
Новая версия конфигурации dbt_project.yml
dbt v0.17.0 вводит новую версию конфигурации для файла dbt_project.yml. Эта новая версия конфигурации изменяет семантику того, как dbt интерпретирует файл dbt_project.yml.
Указание версии конфигурации
Версия конфигурации может быть указана с помощью ключа config-version в файле dbt_project.yml:
name: my_project
version: 1.0.0
config-version: 2
models:
...
Допустимые значения для config-version — это 1 и 2. При использовании config-version: 2 в dbt разблокируется новая функциональность.
Использование config-version: 2
Улучшенная семантика области видимости переменных
Предыдущие версии dbt позволяли переменным (vars:) быть ограниченными на уровне папки в иерархии models:. Это создает несколько проблем:
- Переменные должны действительно применяться только к моделям (так как объявление переменной находится в конфигурации
models:), но переменные также часто используются в тестах, файлахschema.yml, макросах, снимках и так далее. - Существует неоднозначность в том, как переменные разрешаются в файлах
schema.yml. Рассмотрим случай, когда файлschema.ymlограничен одним значением для переменной, но модель, на которую он ссылается, ограничена другим значением для той же переменной. Поведениеvar()в этом сценарии плохо определено и часто не соответствует ожиданиям.
В версии 2 конфигурации dbt_project.yml переменные теперь должны быть определены в словаре верхнего уровня vars:, например:
name: my_project
version: 1.0.0
config-version: 2
vars:
my_var: 1
another_var: true
models:
...
Этот синтаксис делает область видимости переменных однозначной, так как все узлы в данном пакете получат одно и то же значение для данной переменной. Обратите внимание, что этот синтаксис действительно поддерживает область видимости переменных на уровне пакета. См. документацию по синтаксису файла dbt_project.yml для получения дополнительной информации.